home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 32 / Mac Magazin and MacEasy Magazine CD - Issue 32.iso / Grafik & Text / OzTeX3.0 / Metafont / Inputs / ec / exilwest.mf < prev    next >
Text File  |  1997-03-16  |  30KB  |  762 lines

  1. % exilwest.mf
  2. %
  3. % (c) Copyright 1995, 1996, 1997 J"org Knappen
  4. % (c) Copyright 1990, 1992 Norbert Schwarz
  5. %
  6. % This file is part of ecfonts version 1.0
  7. %
  8. % Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
  9. % copyrite.txt for further information
  10. %
  11. % You find some documentation in ecdoc.tex (needs LaTeX2e)
  12. %
  13. % Content:
  14. %
  15. %   italic lowercase accented letters ("western part")
  16. %
  17. %    oct"340" .. oct"377"
  18. %
  19. %   oct"340" .. oct"377"
  20. %
  21. %   oct"340"    a with gravis
  22. %   oct"341"    a with acute
  23. %   oct"342"    a with circumflex
  24. %   oct"343"    a with tilde
  25. %   oct"344"    a with umlaut
  26. %   oct"345"    a with ring
  27. %   oct"346"    ae
  28. %   oct"347"    c with cedilla
  29. %
  30. %   oct"350"    e with gravis
  31. %   oct"351"    e with acute
  32. %   oct"352"    e with circumflex
  33. %   oct"353"    e with umlaut
  34. %   oct"354"    i with gravis
  35. %   oct"355"    i with acute
  36. %   oct"356"    i with circumflex
  37. %   oct"357"    i with umlaut
  38. %
  39. %   oct"360"    edh (icelandic)
  40. %   oct"361"    n with tilde
  41. %   oct"362"    o with gravis
  42. %   oct"363"    o with acute
  43. %   oct"364"    o with circumflex
  44. %   oct"365"    o with tilde
  45. %   oct"366"    o with umlaut
  46. %   oct"367"    oe
  47. %
  48. %   oct"370"    o with  /
  49. %   oct"371"    u with gravis
  50. %   oct"372"    u with acute
  51. %   oct"373"    u with circumflex
  52. %   oct"374"    u with umlaut
  53. %   oct"375"    y with acute
  54. %   oct"376"    thorn
  55. %   oct"377"    sharp s
  56.  
  57. version_check(1,0);  % |version_check| was introduced in dc1.3
  58.  
  59. ecchar "Italic letter a with gravis";
  60. beginchar_twice(oct"340",9u#,x_height#+acc_height#,0);
  61. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  62. adjust_fit(0,0); pickup fine.nib;
  63. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  64. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  65. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  66. rt x4r=hround(w-2.5u+.5stem);
  67. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  68. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  69.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  70. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  71. filldraw circ_stroke z4e--z5e;  % stem
  72. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  73. put_gravis;
  74. repeat_once;
  75. penlabels(0,1,2,3,4,5,6,7); endchar;
  76.  
  77. ecchar "Italic letter a with acute";
  78. beginchar_twice(oct"341",9u#,x_height#+acc_height#,0);
  79. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  80. adjust_fit(0,0); pickup fine.nib;
  81. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  82. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  83. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  84. rt x4r=hround(w-2.5u+.5stem);
  85. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  86. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  87.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  88. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  89. filldraw circ_stroke z4e--z5e;  % stem
  90. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  91. put_accent;
  92. repeat_once;
  93. penlabels(0,1,2,3,4,5,6,7); endchar;
  94.  
  95.  
  96. ecchar "Italic letter circumflex a";
  97. beginchar(oct"342",9u#,x_height#+acc_height#,0);
  98. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  99. adjust_fit(0,0); pickup fine.nib;
  100. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  101. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  102. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  103. rt x4r=hround(w-2.5u+.5stem);
  104. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  105. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  106.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  107. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  108. filldraw circ_stroke z4e--z5e;  % stem
  109. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  110. % the accent
  111. lowercase_hat(.5w,0,8,9,10,11,12);
  112. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  113.  
  114. ecchar "Italic letter a with tilde";
  115. beginchar(oct"343",9u#,x_height#+acc_height#,0);
  116. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  117. adjust_fit(0,0); pickup fine.nib;
  118. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  119. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  120. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  121. rt x4r=hround(w-2.5u+.5stem);
  122. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  123. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  124.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  125. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  126. filldraw circ_stroke z4e--z5e;  % stem
  127. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  128. % the accent
  129. lowercase_tilde(-.5u,-1/6acc_height,8,9,10,11,12);
  130. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  131.  
  132.  
  133. ecchar "Italic letter a with umlaut";
  134. beginchar(oct"344",9u#,x_height#+acc_height#,0);
  135. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  136. adjust_fit(0,0); pickup fine.nib;
  137. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  138. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  139. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  140. rt x4r=hround(w-2.5u+.5stem);
  141. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  142. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  143.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  144. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  145. filldraw circ_stroke z4e--z5e;  % stem
  146. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  147. % the accent
  148. lowercase_umlaut(0,0,8,9,10,11);
  149. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  150.  
  151. ecchar "Italic letter a with ring";
  152. beginchar(oct"345",9u#,x_height#+acc_height#,0);
  153. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  154. adjust_fit(0,0); pickup fine.nib;
  155. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  156. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  157. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  158. rt x4r=hround(w-2.5u+.5stem);
  159. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  160. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  161.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  162. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  163. filldraw circ_stroke z4e--z5e;  % stem
  164. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  165. % the accent
  166. lowercase_circle(x1,(1/3[x_height,h]+apex_o),8,9,10,11);
  167. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  168.  
  169. iff knuthian_ae:
  170. ecchar "Italic ligature ae";
  171. beginchar(oct"346",13u#,x_height#,0);
  172. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  173. adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
  174. forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
  175. numeric light_stem; light_stem=hround .75[hair,stem];
  176. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  177. pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
  178. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
  179. lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
  180. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
  181. top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
  182. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  183.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc of e
  184. pos7(light_stem,0); pos8(light_stem,0);
  185. x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
  186. pos7'(vair,-225); pos11(curve,-180); z7'=z7;
  187. pos12(vair,-90); pos3'(hair,0); z3'=z3;
  188. lft x11r=hround(1.5u-.5curve); x12=.5[x11,x3];
  189. y11=.3[y12,y7]; bot y12r=-oo;
  190. filldraw stroke z7'e{3(x11-x7),y11-y7}...pulled_arc.e(11,12)
  191.  & pulled_arc.e(12,3');  %  bowl of a
  192. filldraw z7l---z8l..z8r---z7r..cycle;  % stem
  193. penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
  194.  
  195. iff not knuthian_ae:
  196. ecchar "Italic ligature ae";
  197. beginchar(oct"346",13u#,x_height#,0);
  198. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  199. adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
  200. forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
  201. numeric light_stem; light_stem=hround .75[hair,stem];
  202. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  203. pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
  204. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
  205. lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
  206. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
  207. top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
  208. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  209.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc of e
  210. pos7(light_stem,0); 
  211. x7=x3; y7+.5light_stem=h+oo; 
  212. pos7'(vair,-225); pos10(vair,-270);
  213. pos11(curve,-180); z7'=z7;
  214. pos12(vair,-90); pos3'(hair,0); z3'=z3;
  215. lft x11r=hround(1.5u-.5curve); x10=x12=.5[x11,x3];
  216. top y10r=h+oo; y11=.52h; bot y12r=-oo;
  217. filldraw stroke pulled_arc.e(3',10) & pulled_arc.e(10,11)
  218.  & pulled_arc.e(11,12) & pulled_arc.e(12,3');  %  bowl of a
  219. filldraw z7l---z3r..z3l---z7r..cycle;  % stem
  220. penlabels(0,1,2,3,4,5,6,7,10,11,12); endchar;
  221.  
  222.  
  223. ecchar "Italic letter cedilla c";
  224. beginchar(oct"347",8u#,x_height#,0.875desc_depth#);
  225. italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
  226. adjust_fit(0,0); pickup fine.nib;
  227. pos0(flare,0); pos1(hair,0); pos2(vair,90);
  228. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  229. x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
  230. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  231. y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0);  % bulb
  232. bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
  233. path p; p=z4{right}..z5..z6;
  234. filldraw stroke pulled_arc.e(2,3)
  235.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  236. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  237. % the accent
  238. lowercase_cedilla(x4,0,7,8,9,10,11);
  239. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  240.  
  241. ecchar "Italic letter e with gravis";
  242. beginchar_twice(oct"350",8u#,x_height#+acc_height#,0);
  243. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  244. adjust_fit(0,0); pickup fine.nib;
  245. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  246. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  247. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  248. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  249. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
  250. top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  251. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  252.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  253. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  254. put_gravis;
  255. repeat_once;
  256. penlabels(0,1,2,3,4,5,6); endchar;
  257.  
  258. ecchar "Italic letter e with acute";
  259. beginchar_twice(oct"351",8u#,x_height#+acc_height#,0);
  260. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  261. adjust_fit(0,0); pickup fine.nib;
  262. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  263. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  264. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  265. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  266. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
  267. top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  268. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  269.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  270. put_accent;
  271. repeat_once;
  272. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  273. penlabels(0,1,2,3,4,5,6); endchar;
  274.  
  275. ecchar "Italic letter circumflex e";
  276. beginchar(oct"352",8u#,x_height#+acc_height#,0);
  277. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  278. adjust_fit(0,0); pickup fine.nib;
  279. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  280. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  281. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  282. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  283. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
  284. top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  285. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  286.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  287. %the accent
  288. lowercase_hat(.5w,0,7,8,9,10,11);
  289. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  290. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  291.  
  292. ecchar "Italic letter umlaut e";
  293. beginchar(oct"353",8u#,x_height#+acc_height#,0);
  294. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  295. adjust_fit(0,0); pickup fine.nib;
  296. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  297. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  298. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  299. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  300. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
  301. top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  302. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  303.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  304. %the accent
  305. lowercase_umlaut(0,0,7,8,9,10);
  306. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  307. penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
  308.  
  309. ecchar "Italic letter i with gravis";
  310. beginchar_twice(oct"354",5u#,x_height#+acc_height#,0);
  311. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  312. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  313. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  314. if classic_serif:
  315.   hook_out(3,4,5)(skewed);  % hooks
  316.   top y2=x_height;
  317.   pos2(stem,0);
  318.   sloped_serif.l(2,3,a,1/3,jut,serif_drop);
  319. else:
  320.   hook_in(0,1,2)(skewed);
  321.   hook_out(3,4,5)(skewed);  % hooks
  322. fi
  323. filldraw stroke z2e--z3e;  % stem
  324. put_gravis;
  325. repeat_once;
  326. penlabels(0,1,2,3,4,5,6,7); endchar;
  327.  
  328. ecchar "Italic letter i with acute";
  329. beginchar_twice(oct"355",5u#,x_height#+acc_height#,0);
  330. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  331. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  332. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  333. if classic_serif:
  334.   hook_out(3,4,5)(skewed);  % hooks
  335.   top y2=x_height;
  336.   pos2(stem,0);
  337.   sloped_serif.l(2,3,a,1/3,jut,serif_drop);
  338. else:
  339.   hook_in(0,1,2)(skewed);
  340.   hook_out(3,4,5)(skewed);  % hooks
  341. fi
  342. filldraw stroke z2e--z3e;  % stem
  343. put_accent;
  344. repeat_once;
  345. penlabels(0,1,2,3,4,5); endchar;
  346.  
  347. ecchar "Italic letter circumflex i";
  348. beginchar(oct"356",5u#,x_height#+acc_height#,0);
  349. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  350. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  351. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  352. if classic_serif:
  353.   hook_out(3,4,5)(skewed);  % hooks
  354.   top y2=x_height;
  355.   pos2(stem,0);
  356.   sloped_serif.l(2,3,a,1/3,jut,serif_drop);
  357. else:
  358.   hook_in(0,1,2)(skewed);
  359.   hook_out(3,4,5)(skewed);  % hooks
  360. fi
  361. filldraw stroke z2e--z3e;  % stem
  362. % the accent
  363. if classic_serif: lowercase_hat(.5w,0,6,7,8,9,10);
  364. else: lowercase_hat(.5[.x1r,x2l],0,6,7,8,9,10); fi
  365. penlabels(0,1,2,3,4,5,6,7,8,9,19); endchar;
  366.  
  367.  
  368.  
  369.  
  370. ecchar "Italic letter umlaut i";
  371. beginchar(oct"357",5u#,x_height#+acc_height#,0);
  372. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  373. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  374. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  375. if classic_serif:
  376.   hook_out(3,4,5)(skewed);  % hooks
  377.   top y2=x_height;
  378.   pos2(stem,0);
  379.   sloped_serif.l(2,3,a,1/3,jut,serif_drop);
  380. else:
  381.   hook_in(0,1,2)(skewed);
  382.   hook_out(3,4,5)(skewed);  % hooks
  383. fi
  384. filldraw stroke z2e--z3e;  % stem
  385. % the accent
  386. lowercase_umlaut(0,0,6,7,8,9);
  387. penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  388.  
  389. ecchar "Italic letter edh";
  390. beginchar(oct"360",9u#,asc_height#,0);
  391. italcorr .x_height#*slant;
  392. adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
  393. oh := vround x_height ;
  394. penpos1(vair,90); penpos3(vair',-90);
  395. penpos2(curve,180); penpos4(curve,0);  penpos4'(hair,0) ;
  396. x2r=hround max(.5u,1.25u-.5curve);
  397. x4r=w-x2r; x1=x3=.5w; y1r=oh + vround 1.5oo; y3r=-oo;
  398. y2=y4=.5oh-vair_corr; y2l:=y4l:=.52oh;
  399. x4'l = x4l; y4 = y4';
  400. penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  401.  & pulled_arc.e(3,4) -- pulled_arc.e(4',1) & cycle;  % bowl
  402. fill z4l .. {right}z4 -- z4r -- cycle ; % fill in a little gap!
  403. penpos5(.5[vair,hair],40) ;
  404. x5l = x2 ; top y5r = h ;
  405. x7r = x4r;
  406. y7 = .95[x4,x1];
  407. penpos7(curve,0);
  408. penstroke z5e .. tension 1.1 and 0.9 .. z7e{down} .. z4e ;
  409. path p ;
  410. p = z5 .. tension 1.1 and 0.9 .. z7{down} ;
  411. z6 = ((0,.7[x_height,asc_height]) -- (w,.6[x_height,asc_height]))
  412.      intersectionpoint p ;
  413. penpos6'(.5[vair,hair],-60) ; penpos 6''(.5[vair,hair],-60) ;
  414. top y6''l = h ; z6'' = z6 + whatever*dir30;
  415. z6 = .5[z6',z6''] ; filldraw stroke z6'e -- z6''e ;
  416. penlabels(1,2,3,4,5,6,6',6''); endchar;
  417.  
  418. ecchar "Italic letter n with tilde";
  419. beginchar(oct"361",10u#,x_height#+acc_height#,0);
  420. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  421. adjust_fit(0,0); pickup fine.nib;
  422. x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
  423. if classic_serif:
  424.   top y1=x_height; pos1(stem,0);
  425.   sloped_serif.l(1,2,a,1/3,jut,serif_drop);
  426. else:
  427.   hook_in(0,a,1);  % opening hook
  428. fi
  429. filldraw circ_stroke z2e--z1e;  % left stem
  430. x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4);  % arch
  431. x7=w; hook_out(5,6,7)(skewed);  % closing hook
  432. filldraw stroke z4e{down}..{-u,-x_height}z5e;  % right stem
  433. lowercase_tilde(0,-1/6acc_height,8,9,10,11,12);
  434. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  435. penlabels(0,a,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  436.  
  437. ecchar "Italic letter o with gravis";
  438. beginchar_twice(oct"362",9u#,x_height#+acc_height#,0);
  439. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  440. adjust_fit(0,0); pickup fine.nib;
  441. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  442. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  443. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  444. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  445.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  446. math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); 
  447. put_gravis;
  448. repeat_once;
  449. endchar;
  450.  
  451. ecchar "Italic letter o with acute"; % use accent from plfonts
  452. beginchar_twice(oct"363",9u#,x_height#+acc_height#,0);
  453. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  454. adjust_fit(0,0); pickup fine.nib;
  455. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  456. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  457. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  458. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  459.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  460. put_accent;
  461. repeat_once;
  462. math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
  463.  
  464. ecchar "Italic letter o with circumflex";
  465. beginchar(oct"364",9u#,x_height#+acc_height#,0);
  466. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  467. adjust_fit(0,0); pickup fine.nib;
  468. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  469. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  470. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  471. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  472.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  473. %the accent
  474. lowercase_hat(x1,0,5,6,7,8,9);
  475. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  476. penlabels(1,2,3,4,7,8,9); endchar;
  477.  
  478.  
  479. ecchar "Italic letter o with tilde";
  480. beginchar(oct"365",9u#,x_height#+acc_height#,0);
  481. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  482. adjust_fit(0,0); pickup fine.nib;
  483. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  484. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  485. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  486. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  487.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  488. %the accent
  489. lowercase_tilde(0,-1/6acc_height,5,6,7,8,9);
  490. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  491. penlabels(1,2,3,4,7,8,9); endchar;
  492.  
  493. ecchar "Italic letter o with umlaut";
  494. beginchar(oct"366",9u#,x_height#+acc_height#,0);
  495. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  496. adjust_fit(0,0); pickup fine.nib;
  497. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  498. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  499. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  500. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  501.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  502. %the accent
  503. lowercase_umlaut(0,0,5,6,7,8);
  504. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  505. penlabels(1,2,3,4,7,8); endchar;
  506.  
  507. ecchar "Italic ligature oe";
  508. beginchar(oct"367",13u#,x_height#,0);
  509. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  510. adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
  511. forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
  512. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  513. pos3(stem,180); pos4(vair,270); pos5(hair,320);
  514. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
  515. lft x3r=hround(.5w-.5stem); x5r=good.x(w-.5u); x6=x5;
  516. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
  517. top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
  518. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  519.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc of e
  520. pos11(vair,90); pos12(curve,180); pos13(vair,270); pos14(stem,360);
  521. x11=x13=.5[x12,x14]; lft x12r=hround(1.5u-.5curve); x14=x3;
  522. top y11=h+oo; y12=y14=.5[y11,y13]; bot y13=-oo;
  523. filldraw stroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
  524.  & pulled_arc.e(13,14) & pulled_arc.e(14,11); % bowl
  525. penlabels(0,1,2,3,4,5,6); endchar;
  526.  
  527. ecchar "Italic Scandinavian letter o/slash";
  528. beginchar(oct"370",9u#,x_height#+.5desc_depth#,.5desc_depth#);
  529. italcorr h#*slant-u#+.5vair#;
  530. adjust_fit(0,0); pickup fine.nib;
  531. pos1(vair,90); pos2(fudged.stem,180);
  532. pos3(vair,270); pos4(fudged.stem,360);
  533. x1=x3=.5w; lft x2r=hround(1.5u-.5fudged.stem); x4=w-x2;
  534. top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo;
  535. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  536.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  537. x5=x4; x6=x2; y5=h; y6=-d;
  538. numeric theta; theta=angle(z5-z6)-90;
  539. pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
  540. filldraw stroke z5e--z6e;  % diagonal
  541. penlabels(1,2,3,4,5,6); endchar;
  542.  
  543. ecchar "Italic letter u with gravis";
  544. beginchar_twice(oct"371",9.5u#,x_height#+acc_height#,0);
  545. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  546. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  547. if classic_serif:
  548.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  549.    pos2(stem,0);
  550.    top y2=x_height;
  551. else:
  552.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  553.   hook_in(0,1,2)(skewed);  % opening hook
  554. fi
  555. pos2'(stem,-180); z2'=z2;
  556. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  557. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  558. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  559. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  560. if classic_serif:
  561.   filldraw stroke z2
  562.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  563. else:
  564.   filldraw stroke z2'e{-u,-x_height}
  565.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  566. fi
  567. filldraw circ_stroke z6e--z7e;  % right stem
  568. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  569. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  570. put_gravis;
  571. repeat_once;
  572. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  573.  
  574. ecchar "Italic letter u with acute";
  575. beginchar_twice(oct"372",9.5u#,x_height#+acc_height#,0);
  576. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  577. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  578. if classic_serif:
  579.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  580.    pos2(stem,0);
  581.    top y2=x_height;
  582. else:
  583.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  584.   hook_in(0,1,2)(skewed);  % opening hook
  585. fi
  586. pos2'(stem,-180); z2'=z2;
  587. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  588. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  589. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  590. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  591. if classic_serif:
  592.   filldraw stroke z2
  593.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  594. else:
  595.   filldraw stroke z2'e{-u,-x_height}
  596.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  597. fi
  598. filldraw circ_stroke z6e--z7e;  % right stem
  599. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  600. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  601. put_accent;
  602. repeat_once;
  603. penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  604.  
  605. ecchar "Italic letter u with circumflex";
  606. beginchar(oct"373",9.5u#,x_height#+acc_height#,0);
  607. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  608. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  609. if classic_serif:
  610.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  611.    pos2(stem,0);
  612.    top y2=x_height;
  613. else:
  614.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  615.   hook_in(0,1,2)(skewed);  % opening hook
  616. fi
  617. pos2'(stem,-180); z2'=z2;
  618. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  619. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  620. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  621. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  622. if classic_serif:
  623.   filldraw stroke z2
  624.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  625. else:
  626.   filldraw stroke z2'e{-u,-x_height}
  627.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  628. fi
  629. filldraw circ_stroke z6e--z7e;  % right stem
  630. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  631. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  632. % the accent
  633. lowercase_hat(.5w,0,10,11,12,13,14);
  634. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
  635.  
  636. ecchar "Italic letter u with umlaut";
  637. beginchar(oct"374",9.5u#,x_height#+acc_height#,0);
  638. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  639. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  640. if classic_serif:
  641.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  642.    pos2(stem,0);
  643.    top y2=x_height;
  644. else:
  645.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  646.   hook_in(0,1,2)(skewed);  % opening hook
  647. fi
  648. pos2'(stem,-180); z2'=z2;
  649. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  650. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  651. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  652. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  653. if classic_serif:
  654.   filldraw stroke z2
  655.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  656. else:
  657.   filldraw stroke z2'e{-u,-x_height}
  658.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  659. fi
  660. filldraw circ_stroke z6e--z7e;  % right stem
  661. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  662. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  663. % the accent
  664. lowercase_umlaut(0,0,10,11,12,13);
  665. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
  666.  
  667. ecchar "Italic letter y with acute";
  668. beginchar_twice(oct"375",8.5u#,x_height#+acc_height#,desc_depth#);
  669. italcorr x_height#*slant+.5stem#-u#;
  670. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  671. x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  672. if classic_serif:
  673.   pos2(stem,0);
  674.   top y2=x_height;
  675. else:
  676.   hook_in(0,1,2)(skewed);  % opening hook
  677. fi
  678. pos2'(stem,-180); z2'=z2;
  679. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  680. pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
  681. pos7(stem,0); pos8(vair,-90);
  682. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  683. y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
  684. pos9(hair,-180); pos10(flare,-180); y9=-.5d;
  685. lft x9r=hround(2.75u-.5flare); bulb(8,9,10);  % bulb
  686. filldraw stroke z2'e{-u,-x_height}
  687.  ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  688. filldraw circ_stroke z6e---z7e...{left}z8e;  % right stem and link
  689. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  690. put_accent;
  691. repeat_once;
  692. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
  693. penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
  694.  
  695. ecchar "Italic letter thorn";
  696. beginchar(oct"376",9u#+serif_fit#,asc_height#,desc_depth#);
  697. italcorr .7x_height#*slant+.5curve# -u# if math_fitting: -.5u# fi;
  698. adjust_fit(0,0);
  699. pickup tiny.nib; pos1(stem',0); pos2(stem,0);
  700. pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
  701. lft x1l=hround(2.5u-.5stem'); top y1=h;
  702. numeric edge; edge=rt x2r;
  703. pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
  704. pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
  705. rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
  706. y3=1/8[bar_height,x_height];
  707. x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
  708. rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
  709. x6l=x4l-.2u; bot y6r=-oo;
  710. x7=x3; y7=min(y3,y6+y4-y3+.6vair);
  711. (x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
  712. (x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
  713. filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
  714. y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
  715. y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
  716. pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e;  % stem
  717. pickup crisp.nib; pos8(stem,0); pos7'(stem,0);
  718. z7'=z2; x8l=x7'l; bot y8=-d;
  719. filldraw stroke z7'e--z8e;  % point
  720. if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
  721.  dish_serif(8,1,c,1/3,jut,d,1/3,jut); % lower serif
  722.  fi  % upper serif
  723. penlabels(0,1,2,3,4,5,6,7,8); endchar;
  724.  
  725. ecchar "Italic German letter sharp s";
  726. beginchar(oct"377",4.5u#+max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
  727. italcorr .9asc_height#*slant-u#;
  728. adjust_fit(if monospace: u# else: 0 fi,0); pickup fine.nib;
  729. z88=(.5w-2.75u,h); z89=(.5w-1.75u,-d);
  730. numeric theta; theta=angle(z88-z89);
  731. pos1(stem,0); pos2(vair,90); pos3(.5[hair,stem],180);
  732. pos4(stem,theta+90); pos5(stem,theta-90); pos6(.5[hair,stem],0);
  733. pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
  734. rt x1r=hround(w-1.5u); lft x8r=hround-.25u; x2=.5[x1,x4]; x7=.5[x8,x5];
  735. y9-.5flare=vround -.85d; bot y7r=-d-oo; y1=.5[x_height,h]; top y2r=h+oo;
  736. y4=.25[x_height,h]; y5=.5[-d,y4];
  737. z4=whatever[z88,z89]; z5=whatever[z88,z89];
  738. x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
  739. bulb(7,8,9);  % left bulb
  740. filldraw stroke z1e{up}...z2e{left}...z3e...{z89-z88}z4e;  % upper arc
  741. filldraw z4r--z5l--z5r--z4l--cycle;  % stem
  742. filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower arc
  743. pos11(.1[hair,curve],-30); x11l=2/3[x12l,x1l]; y11=2/3[y1,y12];
  744. pos12(.3[hair,curve],0); rt x12r=hround(w-3u); y12=.5h;
  745. pos13(.8[hair,curve],30); x13=.5[x12,x14]; y13=.5[y12,y14];
  746. pos14(curve,0); rt x14r=hround(w-.5u); y14=.2h;
  747. pos15(vair,-90); x15=.5[x14,x16]; bot y15r=-oo;
  748. pos16(hair,-180); pos17(.6[hair,flare],-180);
  749. lft x16r=hround(rt x5r+.75u); y17-.5(.6[hair,flare])=.07h;
  750. filldraw stroke z1e{down}...z11e{1.5(x12e-x11e),y12e-y11e}
  751.  ...{down}z12e...{2(x13-x12),y13-y12}z13e
  752.  ...{down}z14e...{left}z15e;  % stroke
  753. bulb(15,16,17);  % inner bulb
  754. pickup crisp.nib; pos20(bar,90); pos21(bar,90);
  755. top y20r=top y21r=x_height;
  756. lft x20=lft x4r-.5stem-u; z21=whatever[z4,z5];
  757. filldraw stroke z20e--z21e;  %  bar
  758. penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,20,21,88,89);
  759. endchar;
  760.  
  761. endinput;
  762.